ВАЖНО! РАБОТА СДЕЛАНА НА PLOTLY. ЕСЛИ НЕ ВКЛЮЧЕНЫ РАСШИРЕНИЯ У JUPYTER LAB, МОГУТ НЕКОРРЕКТНО ОТОБРАЖАТЬСЯ ГРАФИКИ. В ТАКОМ СЛУЧАЕ ОЦЕНКУ СЛЕДУЕТ ПРОИЗВОДИТЬ ПО HTML

Часть 1. Построение признаков

соответствует приведенному в задании для сравнения

Часть 2. Визуальный анализ данных

гистограмма распределения длины сессии в секундах

гистограмма распределения числа уникальных сайтов в сессии

гистограммы распределения числа уникальных сайтов в сессии (#unique_sites) для каждого из 10 пользователей

гистограмма распределения часа начала сессии (start_hour)

гистограмма распределения часа начала сессии (start_hour) для каждого из 10 пользователей

гистограмма распределения дня недели, в который началась сессия

гистограмма распределения дня недели, в который началась сессия (day_of_week) для каждого из 10 пользователей

выводы про каждого пользователя по построенным графикам

John: сессии в основном в будни в рабочее время. количество уникальных сайтов в сессии
визуально распределено нормально и относительно мало.

Bob: сессии в будние дни в рабочее время. 2 пика активности в течении дня - 10 и 15 часов.
Больше активности к концу недели.
Количество уникальных сайтов в сессии визуально распределено нормально и относительно мало.

Ashley: сессии в будние дни в рабочее время с редкими заходами после 20:00. (Переработка?)
2 пика активности в четечни дня 10 и 14 часов. Упор на утенние часы.
Количество уникальных сайтов в сесии визуально распределено нормально
с тяжелым хвостом (выбросом) в 1 - много сессии с одним сайтом (соц.сети / почта / погода?)
Относительно большое число сессий.

Bill: сессии во все дни недели с упором на начало недели. В основном в рабочее время
с пиками в 8-9 и 15. Малое количество сессий после 20:00.
Количество уникальных сайтов в сесии визуально распределено нормально
с несколько тяжелым хвостом в 1 - много сессии с одним сайтом (соц.сети / почта / погода?)
Относительно малое число сессий.

Dick: сессии во все дни недели с уклоном на выходные. В будни выбивается только среда.
Время начала сессиий либо равномерно, либо является суммой 3х нормальных распределиний с пиками
в 9, 16 и 21 час. Более определенно сказать из графика не представляется возможным.
Количество уникальных сайтов в сесии визуально распределено нормально с большой сигма
и очень тяжелым хвостом (выбросом) в 2 - много сессии с двумя сайтами (соц.сети / почта / новости?)
Относительно малое число сессий.

Naomi: сессии во все дни, визуально с нормальным распределением.
Часы начала сессий преимущественно в рабочее время. Визуально распределены
нормально, либо состоящие из 2-х нормальных с пиками в 16 и 20 часов.
Количество уникальных сайтов в сессии визуально распределено нормально.

Mary-Kate: сесии во все дни недели с перевесом на выходные.
Время начала сессий визуально распределено нормально с пиком в 20:00
и тяжелыми хвостами (выбросом) в 9-10 часов.
Количество уникальных сайтов имеет пик в 2-3. Много сессий с малым
количеством уникальных сайтов (соц.сети / почта / новости?)
Относительно большое количество сессий.

Lindsey: сессии во все дни недели с упором на начало недели.
Часы начала сессии визуально распределены нормально с пиком в середине дня.
Количество уникальных сайтов в сессии визуально распределено нормально и
относительно велико.

Avril: сессии во все дни недели относительно равномерно.
время начала сессий распределено нормально с пиком в 17 часов и
выбросами в 13 и 14 часов.
Количество уникальных сайтов визуально распределено нормально.

Ed: сессии почти во все дни недели с пиками в среду и на выходных.
Часы начала сессий визуально распределены нормально с пиком в 16 часов.
Количество уникальных сайтов в сессии визуально распределено нормально и
мало.

ключевой вывод о графикам - идентификация пользователей по представленным данным
возможна и с хорошим результатом.

Определяем топ-10 самых посещаемых сайтов (top10_sites) и соответствующие кол-ва посещений (top10_freqs).

Отобразим частоты посещений топ-10 сайтов

т.к. в начале указано
Если задействуете IPython-виджеты, библиотеку Plotly, анимации
и прочий интерактив, всем от этого будет только лучше.

вместо seaborn, как и ранее, используем Plotly

Часть 3. Проверка построенных признаков

медианная продолжительность сессии (session_timespan) для сессий 10 пользователей.

медианный день недели, в который началась сессия, для сессий 10 пользователей.

медианный час начала сессии для сессий 150 пользователей.

медианное значение числа уникальных сайтов в сессиях 150 пользователей.

Часть 4. Дальнейшее построение признаков

При построении признаков будем иходить из того, что необходимо идентифицировать 150-3000
пользователей. Следовательно, числовым и категориальным признакам отдается предпочтение
при оценке трудозатрат на построение признака и ожидаемой отдачи по сравнению с бинарными.

Как мы видим данные у нас начинаются с 7-8 утра. Т.о. мы достаточно точно можем отделить
начало дня и первый посещенный пользователем сайт. Сам сайт нам ничего не даст, т.к. их
бесконечное количество (мы же не планируем все сайты делать категориальными признаками).
Мы можем получить метрики для пользователя: среднее значение и среднеквадратичное
отклонение времени первого в день сайта пользователя, времени, проведенного на них.
Как я понимаю такие характеристики сильно характеризуют пользователей при достаточном обьеме
данных. При малом количестве данных (например если брать игрушечный пример на 3 пользователя),
можно разделить сессии по перерыву между посещением сайтов, и считать вышеприведенные метрики
для первых сайтов в этих сессиях. При этом длительность перерыва - гиперпараметр.

Визуализиуем:
Сами значения визуально не столь информативны. Отобразим сразу по 2 значения на графике:
нормальное распределение с параметрами, соответствующим полученным для каждого пользователя.

так же наглядно видно, что по расчитанным параметрам пользователи достаточно хорошо разделимы